// 将下面数据转成树状结构,例如
//[
// 'id' => 3,
// 'name' => 'bbb',
// 'pid' => 0,
// 'children' => [
// 'id' => 2,
// 'name' => 'aaa',
// 'pid' => 3,
// 'children' => [
// 'id' => 4,
// 'name' => 'ddd',
// 'pid' => 2,
// 'children' => [
// ]
// ]
// ]
//]
$arr = [
[
'id' => 2,
'name' => 'aaa',
'pid' => 3,
],
[
'id' => 3,
'name' => 'bbb',
'pid' => 0,
],
[
'id' => 1,
'name' => 'ccc',
'pid' => 0,
],
[
'id' => 4,
'name' => 'ddd',
'pid' => 2,
],
[
'id' => 5,
'name' => 'eee',
'pid' => 1,
],
[
'id' => 6,
'name' => 'fff',
'pid' => 2,
],
[
'id' => 7,
'name' => 'ggg',
'pid' => 4,
],
];
//--------------------------------------------------------------
// 结果
$arr1 = [];
$arr2 = [];
foreach ($arr as &$item) {
$arr1[$item['id']] = &$item;
}
unset($item);
foreach ($arr as &$item) {
$pid = $item['pid'];
if ($pid == 0) {
$arr2[] = &$item;
} else {
if (isset($arr1[$pid])) {
$arr1[$pid]['children'][] = &$item;
}
}
}
unset($item);
echo json_encode($arr2);
exit;
